#ifndef ENTITYGROUP_H
#define ENTITYGROUP_H

#include "AbstractEntity.h"
#include "Utils.h"
#include "Matrix4.h"

#include <math.h>
#include <vector>

class EntityGroup : public AbstractEntity
{
public:
	EntityGroup();
	EntityGroup( const Position& pos );

	virtual bool isGroup() { return true; }

	virtual void frame( float frametime );
	virtual void preFrame( float frametime, const std::vector<Matrix4>& matrixes );

	void add( AbstractEntity* ent );
	void remove( AbstractEntity* ent );

	virtual void postFrame();

	void accept( AbstractVisitor* v );
	virtual bool hasCollision( AbstractEntity* other, bool doublechecked = true );
	virtual void checkCollision( AbstractEntity* other );
};

#endif